mam b³±d w projekcie, pierwszy raz to na oczy widze. Co z tym zrobiæ ? :
Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Assembling file: prog.asm
**Error** prog.asm(18) Relative jump out of range by 0175h bytes
**Error** prog.asm(40) Relative jump out of range by 014Fh bytes
**Error** prog.asm(110) Relative jump out of range by 0018h bytes
**Error** prog.asm(118) Relative jump out of range by 0009h bytes
**Error** prog.asm(122) Relative jump out of range by 0034h bytes
**Error** prog.asm(132) Relative jump out of range by 004Bh bytes
**Error** prog.asm(140) Relative jump out of range by 001Ch bytes
**Error** prog.asm(144) Relative jump out of range by 0067h bytes
**Error** prog.asm(214) Relative jump out of range by 0101h bytes
**Error** prog.asm(236) Relative jump out of range by 0142h bytes
Error messages: 10
Warning messages: None
Passes: 1
Remaining memory: 442k
Program :
model small
data
jeden db
201,205,205,205,205,205,205,205,205,205,205,205,205,187,13,10,186,' $'
ekran dw 12345
dwa db
186,13,10,204,205,205,205,205,205,205,205,205,205,205,205,205,185,13,10,186,218,196,191,218,196,191,218,196,191,218,196,191,186,13,10,186,179,'1',179,179,'2',179,179,'3',179,179,'+',179,186,13,10,186,192,196,217,192,196,217,192,196,217,192,196,217,186,13,10,186,218,196,191,218,196,191,218,196,191,218,196,191,186,13,10,186,179,'4',179,179,'5',179,179,'6',179,179,'-',179,186,13,10,186,192,196,217,192,196,217,192,196,217,192,196,217,186,13,10,186,218,196,191,218,196,191,218,196,191,218,196,191,186,13,10,186,179,'7',179,179,'8',179,179,'9',179,179,'*',179,186,13,10,186,192,196,217,192,196,217,192,196,217,192,196,217,186,13,10,186,218,196,191,218,196,191,218,196,191,218,196,191,186,13,10,186,179,'0',179,179,'
',179,179,'=',179,179,'/',179,186,13,10,186,192,196,217,192,196,217,192,196,217,192,196,217,186,13,10,200,205,205,205,205,205,205,205,205,205,205,205,205,188,'$'
bladmyszy db 'mysz nie dziala$'
jestpop db 0
poprzednia dw 0
jakiedzialanie db 0
code
start:
mov ds,dx
;==========================================================================
xor ax,ax
int 33h
cmp ax,0
je myszniedziala
mov ax,1
int 33h
mov ax,6
xor bx,bx
int 33h
mov ax,6
mov bx,1
int 33h
petlaglowna:
jmp wypisz
dalej:
mov ax,6
xor bx,bx
int 33h
cmp bx,0
jne sprawdzgdzie
powrot:
mov ax,6
mov bx,1
int 33h
cmp bx,0
jne koniec
jmp petlaglowna
;==========================================================================
wypisz:
lea dx,jeden
mov ah,9
int 21h
mov ax,ekran
xor dx,dx
mov cl,10
xor ch,ch
div cx
push dx
xor dx,dx
mov cl,10
xor ch,ch
div cx
push dx
xor dx,dx
mov cl,10
xor ch,ch
div cx
push dx
xor dx,dx
mov cl,10
xor ch,ch
div cx
push dx
xor dx,dx
mov cl,10
xor ch,ch
div cx
push dx
mov cx,5
petla:
pop ax
cmp al,0
je zastapzero
mov dl,al
add dl,'0'
jmp pozastapzero
zastapzero:
mov dl,' '
pozastapzero:
mov ah,2
int 21h
loop petla
lea dx,dwa
mov ah,9
int 21h
mov ah,01h;
int 21h
jmp dalej
;==========================================================================
sprawdzgdzie:
shr dx,3
shr cx,3
cmp cx,0
je powrot
cmp cx,4
jb pierwszakolumna
cmp cx,7
jb drugakolumna
cmp cx,10
jb trzeciakolumna
cmp cx,13
jb czwartakolumna
jmp powrot
pierwszakolumna:
cmp dx,3
jb powrot
cmp dx,6
jb jedynka
cmp dx,9
jb czworka
cmp dx,12
jb siodemka
cmp dx,15
jb zero
jmp powrot
drugakolumna:
cmp dx,3
jb powrot
cmp dx,6
jb dwojka
cmp dx,9
jb piatka
cmp dx,12
jb osemka
jmp powrot
trzeciakolumna:
cmp dx,3
jb powrot
cmp dx,6
jb trojka
cmp dx,9
jb szostka
cmp dx,12
jb dziewiatka
cmp dx,15
jb rownasie
jmp powrot
czwartakolumna:
cmp dx,3
jb powrot
cmp dx,6
jb dodawanie
cmp dx,9
jb odejmowanie
cmp dx,12
jb mnozenie
cmp dx,15
jb dzielenie
jmp powrot
jedynka:
mov bx,1
jmp cyfra
dwojka:
mov bx,2
jmp cyfra
trojka:
mov bx,3
jmp cyfra
czworka:
mov bx,4
jmp cyfra
piatka:
mov bx,5
jmp cyfra
szostka:
mov bx,6
jmp cyfra
siodemka:
mov bx,7
jmp cyfra
osemka:
mov bx,8
jmp cyfra
dziewiatka:
mov bx,9
jmp cyfra
zero:
mov bx,0
jmp cyfra
cyfra:
mov ax,ekran
shr ax,1
mov cx,ax
shr cx,2
add ax,cx
add ax,bx
mov ekran,ax
jmp powrot
dodawanie:
mov al,1
jmp dzialanie
odejmowanie:
mov al,2
jmp dzialanie
mnozenie:
mov al,3
jmp dzialanie
dzielenie:
mov al,4
jmp dzialanie
dzialanie:
mov jakiedzialanie,al
mov ax,ekran
mov poprzednia,ax
mov ekran,0
mov jestpop,1
jmp powrot
rownasie:
cmp jakiedzialanie,0
je powrot
mov bx,ekran
mov ax,poprzednia
cmp jakiedzialanie,1
jne mozeodejmowanie
add ax,bx
mov ekran,ax
mov jestpop,0
mozeodejmowanie:
cmp jakiedzialanie,2
jne mozemnozenie
sub ax,bx
mov ekran,ax
mov jestpop,0
mozemnozenie:
cmp jakiedzialanie,3
jne mozedzielenie
mul bx
mov ekran,ax
mov jestpop,0
mozedzielenie:
cmp jakiedzialanie,4
jne powrot
xor dx,dx
div bx
mov ekran,ax
mov jestpop,0
jmp powrot
;==========================================================================
myszniedziala:
lea dx,bladmyszy
mov ah,9
int 21h
jmp koniec
;==========================================================================
koniec:
mov ah,4ch
int 21h
end start